Backdrop

프로그래머스 ▸ 코딩테스트 입문

배열 회전시키기
0

문제 설명

정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.

제한사항

  • 3 ≤ numbers의 길이 ≤ 20
  • direction은 "left" 와 "right" 둘 중 하나입니다.

입출력 예

numbersdirectionresult
[1, 2, 3]"right"[3, 1, 2]
[4, 455, 6, 4, -1, 45, 6]"left"[455, 6, 4, -1, 45, 6, 4]

입출력 예 설명

입출력 예 #1

  • numbers 가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다.

입출력 예 #2

  • numbers 가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 return합니다.

풀이

이론

shift, unshift

  • shift() : 배열의 첫번째 요소를 제거하고 제거된 요소를 반환
  • unshift() : 배열의 첫번째 요소로 요소를 추가하고 배열의 새로운 길이를 반환

push()와 pop()는 배열의 마지막 요소를 추가하거나 제거하는 메서드예요. 이와 비슷하게 배열의 첫번째 요소를 추가하거나 제거하는 메서드는 unshift()와 shift()가 있어요.

코드

function solution(numbers, direction) {
  const answer = [...numbers];
  if (direction === 'left') {
    answer.push(answer.shift());
  } else {
    answer.unshift(answer.pop());
  }
 
  return answer;
}